package com.deploygate.maven.plugins; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.HttpClientBuilder; import org.json.JSONObject; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.logging.Logger; import static com.deploygate.maven.plugins.Utils.createHttpPost; public class UploadExecutor { private static final Logger LOGGER = Logger.getLogger(UploadExecutor.class.getName()); public static void execute(UploadInfo uploadInfo) { HttpPost httpPost = createHttpPost(uploadInfo); HttpResponse response = doPost(httpPost); HttpEntity entity = response.getEntity(); try (InputStream is = entity.getContent()) { BufferedReader reader = new BufferedReader(new InputStreamReader(is)); JSONObject json = new JSONObject(reader.readLine()); log(uploadInfo.getFile().getName(), json); } catch (IOException e) { LOGGER.warning(e.getMessage()); } } private static HttpResponse doPost(HttpPost httpPost) { try { return HttpClientBuilder.create().build().execute(httpPost); } catch (IOException e) { LOGGER.warning(e.getMessage()); } return null; } private static void log(String apkName, JSONObject json) { if (json.getBoolean("error")) { LOGGER.warning(apkName + " error message:" + json.getString("message")); } else { LOGGER.info(apkName + " result:" + json.toString()); } } }